這已經是很普遍的操作方式了
就不特別說明了不過
也一篇文章可以提供給大家了解
https://www.shubo.io/what-is-cors/

這邊就直接上程式了
作法有蠻多種的
有些會根據每個API開發時就直接寫在該API上

我偏好使用清單式方式處理,前一篇提到的有白名單進行篩選進來後的API
在進入到CORS filter時就會幫這個API加上可以跨域的行為

其他方式可參考
https://www.tpisoftware.com/tpu/articleDetails/1415

CORSFilter

@Component
public class CORSFilter implements Filter {


    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {

        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;

        response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PATCH");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With, remember-me, Authorization, cache-control");

        chain.doFilter(req, res);
    }

    @Override
    public void init(FilterConfig filterConfig) {
    }

    @Override
    public void destroy() {
    }

}

單單只看這個filter來說可能會覺得危險吧,把每個API的Origin都給予允許,且每個ResfulAPI都沒有予以限制


這不是一個給新手的一個教學過程,也寫的不是很完整
希望大家多多包涵囉~
主要是給自己的一個紀錄,也分享給有需要的夥伴
這是一個心血來潮,產生的文章
若有喜歡或交流的部分都歡迎在下方留言,多多關照。

#filter







你可能感興趣的文章

Day 89

Day 89

[25] 強制轉型 - 隱含的強制轉型、Addition Operator、Strings <> Numbers

[25] 強制轉型 - 隱含的強制轉型、Addition Operator、Strings <> Numbers

C++筆記 將函式當作參數傳遞

C++筆記 將函式當作參數傳遞






留言討論